package magda.edytor.dane;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JSeparator;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JCheckBox;
import java.awt.Font;
import javax.swing.JList;

public class KlubGUI extends JFrame {

	private JPanel contentPane;
	private JTextField txtKlub;
	private JTextField textField;
	private JTextField textField_1;
	private JTextField textField_2;
	private JTextField textField_3;
	private int id;
	Klub klub = new Klub();
	JList list;
	LigaGUI ligaGUI;
	Liga liga;
	DruzynaGUI druzynaGUI;
	Druzyna druzyna;
	/**
	 * Launch the application.
	 */

	/**
	 * Create the frame.
	 */
	public KlubGUI() {
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setBounds(100, 100, 446, 575);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
	
		txtKlub = new JTextField();
		txtKlub.setBounds(10, 33, 284, 20);
		contentPane.add(txtKlub);
		txtKlub.setColumns(10);
		
		JLabel lblKlub = new JLabel("Nazwa klubu:");
		lblKlub.setFont(lblKlub.getFont().deriveFont(lblKlub.getFont().getStyle() | Font.BOLD | Font.ITALIC));
		lblKlub.setBounds(10, 11, 89, 14);
		contentPane.add(lblKlub);
		
		JButton btnDruzyna = new JButton("Zapisz");
		btnDruzyna.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				zapiszKlub();
			}
		});
		btnDruzyna.setBounds(319, 32, 89, 23);
		contentPane.add(btnDruzyna);
		
		JButton btnDruzyna_1 = new JButton("Zapisz");
		btnDruzyna_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				zapiszPrezesa();
			}
		});
		btnDruzyna_1.setBounds(319, 127, 89, 23);
		contentPane.add(btnDruzyna_1);
		
		JSeparator separator = new JSeparator();
		separator.setBounds(10, 64, 414, 2);
		contentPane.add(separator);
		
		JLabel lblPrezesKlubu = new JLabel("Prezes klubu:");
		lblPrezesKlubu.setFont(lblPrezesKlubu.getFont().deriveFont(lblPrezesKlubu.getFont().getStyle() | Font.BOLD | Font.ITALIC));
		lblPrezesKlubu.setBounds(10, 77, 89, 14);
		contentPane.add(lblPrezesKlubu);
		
		JLabel lblImie = new JLabel("Imie:");
		lblImie.setBounds(10, 102, 46, 14);
		contentPane.add(lblImie);
		
		textField = new JTextField();
		textField.setBounds(43, 99, 215, 20);
		contentPane.add(textField);
		textField.setColumns(10);
		
		JLabel lblNazwisko = new JLabel("Nazwisko:");
		lblNazwisko.setBounds(10, 131, 59, 14);
		contentPane.add(lblNazwisko);
		
		textField_1 = new JTextField();
		textField_1.setBounds(79, 128, 179, 20);
		contentPane.add(textField_1);
		textField_1.setColumns(10);
		
		JSeparator separator_1 = new JSeparator();
		separator_1.setBounds(8, 162, 414, 2);
		contentPane.add(separator_1);
		
		JLabel lblBoisko = new JLabel("Boisko:");
		lblBoisko.setFont(lblBoisko.getFont().deriveFont(lblBoisko.getFont().getStyle() | Font.BOLD | Font.ITALIC));
		lblBoisko.setBounds(10, 176, 46, 14);
		contentPane.add(lblBoisko);
		
		JLabel lblPowierzchnia = new JLabel("Powierzchnia:");
		lblPowierzchnia.setBounds(10, 197, 89, 14);
		contentPane.add(lblPowierzchnia);
		
		textField_2 = new JTextField();
		textField_2.setBounds(95, 194, 104, 20);
		contentPane.add(textField_2);
		textField_2.setColumns(10);
		
		JLabel lblNawierzchnia = new JLabel("Nawierzchnia:");
		lblNawierzchnia.setBounds(10, 230, 89, 14);
		contentPane.add(lblNawierzchnia);
		
		textField_3 = new JTextField();
		textField_3.setBounds(95, 227, 163, 20);
		contentPane.add(textField_3);
		textField_3.setColumns(10);
		
		JButton btnDodajDruyne = new JButton("Zapisz");
		btnDodajDruyne.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				zapiszBoisko();
			}
		});
		btnDodajDruyne.setBounds(319, 247, 89, 23);
		contentPane.add(btnDodajDruyne);
		
		
		JSeparator separator_2 = new JSeparator();
		separator_2.setBounds(10, 281, 414, 2);
		contentPane.add(separator_2);
		
		JButton btnZamknij = new JButton("Zamknij");
		btnZamknij.setFont(btnZamknij.getFont().deriveFont(btnZamknij.getFont().getStyle() | Font.BOLD | Font.ITALIC));
		btnZamknij.setBounds(319, 503, 89, 23);
		contentPane.add(btnZamknij);
		
		btnZamknij.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				dispose();
			}
		});
		
		
		JButton btnDodajDruyne_1 = new JButton("Dodaj dru\u017Cyne");
		btnDodajDruyne_1.setBounds(285, 385, 123, 23);
		contentPane.add(btnDodajDruyne_1);
		
		btnDodajDruyne_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
					 dodaj();
			 }
		});
		
		list = new JList();
		list.setBounds(10, 319, 265, 207);
		contentPane.add(list);
		list.setListData(klub.getDruzyny());

		
		JLabel lblDruzyny = new JLabel("Dru\u017Cyny:");
		lblDruzyny.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 12));
		lblDruzyny.setBounds(10, 294, 59, 14);
		contentPane.add(lblDruzyny);
		
		JButton btnEdytujDruyne = new JButton("Edytuj dru\u017Cyne");
		btnEdytujDruyne.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				edytuj();
			}
		});
		btnEdytujDruyne.setBounds(285, 419, 123, 23);
		contentPane.add(btnEdytujDruyne);
		
		JButton btnUsuDruyne = new JButton("Usu\u0144 dru\u017Cyne");
		btnUsuDruyne.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				usuwanie();
			}
		});
		btnUsuDruyne.setBounds(285, 453, 123, 23);
		contentPane.add(btnUsuDruyne);
	}
	
	public void dodaj(){
		 druzynaGUI = new DruzynaGUI();
		 druzyna = new Druzyna();
		 druzynaGUI.setKlubGUI(this);
		 druzynaGUI.getKlubGUI().setKlub(klub);
		 	druzynaGUI.setVisible(true);
		 	druzynaGUI.setDruzyna(druzyna);
	}

public void zapiszKlub(){
		
		if(ligaGUI.getList().getSelectedIndex()<0){
			id=Idd.idKlubu();
			klub.setNazwa(txtKlub.getText());
			ligaGUI.getLiga().dodajKlub(klub);
			ligaGUI.getList().setListData(ligaGUI.getLiga().getLiga());
			System.out.println(klub.getNazwa());
			klub.setId(id);
		}
		else{
			edycja(ligaGUI.getLiga().zwrocKlub(ligaGUI.getList().getSelectedIndex()));
			ligaGUI.getList().setListData(ligaGUI.getLiga().getLiga());

		}
	}

	public void zapiszPrezesa(){
	
		String imie =(textField.getText());
		String nazwisko = (textField_1.getText());
		Prezes prezes= new Prezes(imie,nazwisko);
		klub.dodajPrezesa(prezes);
		System.out.println("Zapisuje prezesa");
	}

	public void zapiszBoisko(){
		System.out.println("zapisuje boisko");
		String nawierzchnia=(textField_3.getText());
		Double powierzchnia=(Double.parseDouble(textField_2.getText()));
		Boisko boisko = new Boisko(nawierzchnia, powierzchnia);
		klub.dodajBoisko(boisko);
		getTextField_3().setText(klub.getBoisko().toStringN());
		getTextField_2().setText(klub.getBoisko().toStringP());
		System.out.println("Boisko o powierzchnii: "+powierzchnia+" i nawierzchnii: "+nawierzchnia);

		
			
		}
	
	public void usuwanie(){
		klub.usunDruzyne(list.getSelectedIndex());
		list.setListData(klub.getDruzyny());
	}
	
	public void edycja(Klub klub){
		klub.setNazwa(txtKlub.getText());
		klub.setId(id);
	}
	
	public void edytuj(){
		dodaj();
		druzynaGUI.getTextField().setText(klub.zwrocDruzyne(getList().getSelectedIndex()).getNazwa());
		druzynaGUI.getList().setListData(klub.zwrocDruzyne(getList().getSelectedIndex()).getSklad());
		System.out.println("Jest w edytuj druzyne");
		druzynaGUI.setDruzyna(klub.zwrocDruzyne(getList().getSelectedIndex()));
		druzynaGUI.uzupelnienie();
	}
	void uzupelnienie(){
		getList().setListData(ligaGUI.getLiga().zwrocKlub(ligaGUI.getList().getSelectedIndex()).getDruzyny());
		getTxtKlub().setText(ligaGUI.getLiga().zwrocKlub(ligaGUI.getList().getSelectedIndex()).getNazwa());
		list.setListData(klub.getDruzyny());
		System.out.println("Jest w uzupełnienie klubGUI");
		getTextField().setText(getKlub().getPrezes().toString1());
		getTextField_1().setText(getKlub().getPrezes().toString2());
		getTextField_3().setText(getKlub().getBoisko().toStringN());
		getTextField_2().setText(getKlub().getBoisko().toStringP());

	}
	
	public Klub getKlub() {
		return klub;
	}

	public void setKlub(Klub klub) {
		this.klub = klub;
	}

	public JList getList() {
		return list;
	}

	public void setList(JList list) {
		this.list = list;
	}

	public LigaGUI getLigaGUI() {
		return ligaGUI;
	}

	public void setLigaGUI(LigaGUI ligaGUI) {
		this.ligaGUI = ligaGUI;
	}

	public Liga getLiga() {
		return liga;
	}

	public void setLiga(Liga liga) {
		this.liga = liga;
	}

	public DruzynaGUI getDruzynaGUI() {
		return druzynaGUI;
	}

	public void setDruzynaGUI(DruzynaGUI druzynaGUI) {
		this.druzynaGUI = druzynaGUI;
	}

	public Druzyna getDruzyna() {
		return druzyna;
	}

	public void setDruzyna(Druzyna druzyna) {
		this.druzyna = druzyna;
	}

	public JTextField getTxtKlub() {
		return txtKlub;
	}

	public void setTxtKlub(JTextField txtKlub) {
		this.txtKlub = txtKlub;
	}

	public JTextField getTextField() {
		return textField;
	}

	public void setTextField(JTextField textField) {
		this.textField = textField;
	}

	public JTextField getTextField_1() {
		return textField_1;
	}

	public void setTextField_1(JTextField textField_1) {
		this.textField_1 = textField_1;
	}

	public JTextField getTextField_2() {
		return textField_2;
	}

	public void setTextField_2(JTextField textField_2) {
		this.textField_2 = textField_2;
	}

	public JTextField getTextField_3() {
		return textField_3;
	}

	public void setTextField_3(JTextField textField_3) {
		this.textField_3 = textField_3;
	}
}
